package testEnmu;

// 枚举的定义
public enum TestEnmu {
    // 例如定义一个颜色
    //RED,BLACK,GREEN;

    // 实现一个构造方法
    RED("red",1),BLACK("black",2),WHITE("white",3),GREEN("green",4);
    private  String name;
    private  int key;
    private TestEnmu (String name,int key) {
        this.name = name;
        this.key = key;
    }

    public static void main(String[] args) {
        // 使用场景1: switch 语句
        TestEnmu color = RED;
        switch (color){
            case RED:
                System.out.println("1");
                break;
            case BLACK:
                System.out.println("2");
                break;
            case GREEN:
                System.out.println("3");
                break;
            default:
                System.out.println("4");
                break;
        }

        // 使用场景2： 一些常见Enum的方法

        // values()     以数组形式返回枚举类型的所有成员
        //ordinal()     获取枚举成员的索引位置
        //valueOf()     将普通字符串转换为枚举实例
        //compareTo()   比较两个枚举成员在定义时的顺序
        TestEnmu[] testEnums = TestEnmu.values(); // 而 values()这个方法 在枚举类里面没有
        for (int i = 0; i < testEnums.length; i++) {
            System.out.println(testEnums[i]);
            System.out.println(testEnums[i]+" 索引："+testEnums[i].ordinal());
        }
        System.out.println("=============");
       TestEnmu testEnmu =  TestEnmu.valueOf("GREEN");
        System.out.println(testEnmu);
        System.out.println(RED.compareTo(GREEN)); // 输出小于零的一个数据

        // 我们所有自己写的枚举类都默认继承枚举类Enum -> 这是一个抽象类
        // 枚举的构造方法默认是私有的

    }
}
